package Thread;

//打印一个累加的类
class Counter {
    //初始值是0
    public static int count = 0;

    //累加的方法 - synchronized 保证线程安全
    public synchronized void increase() {
        count++;
    }
}

public class ThreadDemo {
    //两个线程，每个线程循环 1w 次，累加变量 count 的值，count 默认值为 0，注意线程安全问题。

    //累加的次数
    public static int num = 10000;

    //实例化累加的类
    public static Counter counter = new Counter();

    public static void main(String[] args) throws InterruptedException{
        //定义两个线程
        Thread t1 = new Thread(() -> {
            //循环一万次
            for (int i = 0; i < num; i++) {
                //调用方法累加一万次
                counter.increase();
            }
        });

        Thread t2 = new Thread(() -> {
            //循环一万次
            for (int i = 0; i < num; i++) {
                //调用方法累加一万次
                counter.increase();
            }
        });
        //启动线程
        t1.start();
        t2.start();
        //等待线程
        t1.join();
        t2.join();

        //输出累加的结果
        System.out.println("累加的结果：" + counter.count);
    }
}
